bits 16         ; 16位实模式
org 0x7C00      ; BIOS 加载MBR到内存地址0x7C00
load_bootloader:
    ; 设置读取的扇区数
    mov dx, 0x1F2
    mov al, 1           ; 读取1个扇区
    out dx, al
    ; 设置要读取的扇区号（LBA地址）
    mov dx, 0x1F3
    mov al, 1           ; LBA 地址低8位（第1扇区）
    out dx, al
    ; 设置柱面号（LBA地址的8-23位）
    mov dx, 0x1F4
    mov al, 0           ; LBA 地址的8-15位
    out dx, al
    mov dx, 0x1F5
    mov al, 0           ; LBA 地址的16-23位
    out dx, al
    ; 设置驱动器和LBA的高4位
    mov dx, 0x1F6
    mov al, 0xE0        ; 主驱动器，LBA 地址的24-27位
    out dx, al
    ; 发送读命令
    mov dx, 0x1F7
    mov al, 0x20        ; 0x20 是读取命令
    out dx, al
    ; 等待磁盘准备就绪
    .wait_ready:
        in al, dx
        test al, 0x80   ; 检查 BSY 位（位7）
        jnz .wait_ready
    ; 读取数据
    mov dx, 0x1F0       ; 数据端口
    mov cx, 256         ; 每个扇区512字节 / 2 = 256次读取
    rep insw            ; 从端口读取数据到内存